package controller.gui;

import gui.SecondaryMenu;

import java.awt.event.ActionEvent;

import javax.swing.JButton;

import controller.BackupMapUser;
import controller.Controller;
import controller.ControllerInformation;
import controller.NullStaticObjectException;
import controller.SecondaryMenuButtonController;
import controller.states.MapElementToAddStateUser;

/**rappresenta un controller che gestisce un pulsante di cancellazione di azioni fatte.
 * Le azioni che ogni pulsante di cancel fa sono:
 * <ul>
 *  <li>impostazione dello stato utente ad IDLE</li>
 *  <li>impostare a invisibile il <tt>superPanel</tt></li>
 * </ul>
 * 
 * oltre a queste esecuzioni, un pulsante di Cancel può effettuare altre operazioni. Se si vogliono eseguire
 * altre operazioni oltre a queste, si può pensare di estendere il metodo {@link #otherInstructionList(ActionEvent)}, di default
 * perfettamente vuoto
 * 
 * @author koldar
 * @version 1.0
 */
public class CancelButtonController extends MetaSecondaryMenuButtonController<SecondaryMenu>{

	
	public CancelButtonController(JButton button,SecondaryMenu _superpanel) {
		super(button,_superpanel);
	}

	@Override
	public void wizardInizializer(ActionEvent arg0)	throws NullStaticObjectException {
		this.otherInstructionList(arg0);
		this.setToIdle();
		this.superPanel.setVisible(false);
	}
	
	/**indica la lista di ulteriori istruzioni da eseguire. Di default è vuota.
	 * Tale lista di istruzioni viene eseguita <strong>prima</strong> di ogni altra istruzione.
	 * 
	 * @param arg0 l'actionEvent che ha scatenato l'esecuzione di queste istruzioni
	 */
	public void otherInstructionList(ActionEvent arg0){
		
	}


}
